/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Modelo;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author 18656815
 */
public class ModeloProducto extends conexionBd {
    int Codigo;
    String Nombre;
    int CodigoCategoria;

    public int getCodigoCategoria() {
        return CodigoCategoria;
    }

    public void setCodigoCategoria(int CodigoCategoria) {
        this.CodigoCategoria = CodigoCategoria;
    }
    double Costo;

    public int getCodigo() {
        return Codigo;
    }

    public void setCodigo(int Codigo) {
        this.Codigo = Codigo;
    }

    public double getCosto() {
        return Costo;
    }

    public void setCosto(double Costo) {
        this.Costo = Costo;
    }

    public String getNombre() {
        return Nombre;
    }

    public void setNombre(String Nombre) {
        this.Nombre = Nombre;
    }
    
     //public void Agregar(int cod,int codc,String nom,double cos)
     public void Agregar(int cod,String nom,double cos,int codc)
   {
       String isql="Insert into \"Productos\"(\"Codigo\",\"Nombre\",\"Costo\",\"CodigoCategoria\")" +
               "values("+cod+",'"+nom +"',"+cos +","+codc +") ";
       ejecutar(isql);
   }
  public void Modificar(int cod,String nom,double cos,int codc)
   {
       String isql="update \"Productos\" set" +
               "\"CodigoCategoria\"="+codc+"," +
               "\"Nombre\"='"+nom+"',"+
               "\"Costo\"="+cos+"" +
               "where \"Codigo\"="+cod;
       ejecutar(isql);
   }
  public void Eliminar(int cod)
   {
       String isql="delete from \"Productos\" " +
               "where \"Codigo\"="+cod;
       ejecutar(isql);
   }
  public boolean buscar(int cod)
  {
    boolean encontro=false;
      String isql="select *from \"Productos\" " +
               "where \"Codigo\"="+cod;
                  System.out.println(isql);

              try {
                ResultSet res = consulta(isql);
            if (res.next()) {
                encontro=true;
                Codigo=res.getInt(1);
                CodigoCategoria=res.getInt(2);
                Nombre=res.getString(3);
                Costo=res.getDouble(4);
                

            }
            else
            {
            JOptionPane.showMessageDialog(null, "El producto no esta Registrado");
            }
        } catch (SQLException ex) {
            Logger.getLogger(ModeloProducto.class.getName()).log(Level.SEVERE, null, ex);
        }


      return encontro;

  }
  public boolean buscar(String nom)
  {
    boolean encontro=false;
      String isql="select *from \"Productos\" " +
               "where \"Nombre\"='"+nom+"'";
      System.out.println(isql);
      ResultSet res = consulta(isql);
        try {
            if (res.next()) {
                encontro=true;
                Codigo=res.getInt(1);
                CodigoCategoria=res.getInt(2);
                Nombre=res.getString(3);
                Costo=res.getDouble(4);
            }
            else
            {
               JOptionPane.showMessageDialog(null, "El producto no esta Registrado");
            }
        } catch (SQLException ex) {
            Logger.getLogger(ModeloProducto.class.getName()).log(Level.SEVERE, null, ex);
        }
        return encontro;

  }
 public boolean HayIngredientes(int cod,int cant)
 {
     boolean hay=true;
             ResultSet rs;
        try
        {
            String sql="SELECT  \"ProductoIngrediente\".\"Cantidad\" AS \"seNecesita\", \"Ingredientes\".\"Cantidad\" AS \"cuantoHay\", \"ProductoIngrediente\".\"CodigoProducto\" FROM " +
                    "public.\"ProductoIngrediente\", public.\"Ingredientes\" WHERE \"ProductoIngrediente\".\"CodigoIngrediente\" = \"Ingredientes\".\"Codigo\"";

            rs=consulta(sql);
            while (rs.next())
            {
                double nec = cant * rs.getDouble(1);
                double cuantoshay = rs.getDouble(2);
                if ( cuantoshay<nec)
                    hay=false;
            }
        }
        catch(Exception e)
        {
           JOptionPane.showMessageDialog(null, e);

        }

     return hay;

 }
 public void actIngredientes(int cod,int cant)
 {
             ResultSet rs;
        try
        {
            String sql="SELECT  \"ProductoIngrediente\".\"Cantidad\" AS \"seNecesita\", \"Ingredientes\".\"Cantidad\" AS \"cuantoHay\", \"ProductoIngrediente\".\"CodigoProducto\", \"ProductoIngrediente\".\"CodigoIngrediente\" FROM " +
                    "public.\"ProductoIngrediente\", public.\"Ingredientes\" WHERE \"ProductoIngrediente\".\"CodigoIngrediente\" = \"Ingredientes\".\"Codigo\"";

            rs=consulta(sql);
            while (rs.next())
            {
                double nec = cant * rs.getDouble(1);
                double cuantoshay = rs.getDouble(2);
                double cuantosQuedo=cuantoshay - nec;
                int codIng = rs.getInt(4);
                ejecutar("update \"Ingredientes\" set \"Cantidad\" ="+cuantosQuedo +" where \"Codigo\"="+codIng);
            }
        }
        catch(Exception e)
        {
           JOptionPane.showMessageDialog(null, e);

        }


 }
}
